let exchangeType = function (value, te) {
    switch(value) {
        case "CNH": 
            return te('m.shMoney')
        case "USD": 
            return te('m.usMoney')
        case "HKD": 
            return te('m.hkMoney')
        default:
            return te('m.hkMoney')
    }
}
// 大盘状态 1：盘前交易 2：交易中 3：盘后交易 4：已收盘
let PanStatus = function (value, te) {
    switch(value) {
        case 1: 
            return te('m.beforeTrade')
        case 2: 
            return te('m.trading')
        case 3: 
            return te('m.afterTrade')
        default:
            return te('m.traded')
    }
}
let Market = function (value) {
    switch(value) {
        case "HKEX": 
            return "HK"
        case "US": 
            return "US"
        case "SSE": 
            return "SH"
        case "SZSE": 
            return "SZ"
        default:
            return "HK"
    }
}
let QuotationStatus = function (value,te) {
    switch(value) {
        case 1: 
            return te('m.Used')
        case 2: 
            return te('m.Expired')
        default:
            return te('m.Used')
    }
}
let sexType = function (value, te) {
    switch(value) {
        case 1: 
            return te('m.male')
        case 2: 
            return te('m.female')
        default:
            return te('m.other')
    }
}
// 兑换记录类型1：兑换中，2：兑换成功，3：兑换失败
let exchangeStatus = function (value, te) {
    switch(value) {
        case 1: 
            return te('m.exchanging')
        case 2: 
            return te('m.exchangeSuc')
        default:
            return te('m.exchangeFal')
    }
}
//账户类型 1：标准账户 2：融资账户
let AssetType = function (value, te) {
    switch(value) {
        case 1: 
            return te('account_dialog.account_up.56hqvuz2fkg0')
        case 2: 
            return te('m.FinanceAccount')
        default:
            return te('account_dialog.account_up.56hqvuz2fkg0')
    }
}
//购买方式 1：现金购买 2：融资购买
let buyType = function (value, te) {
    switch(value) {
        case 1: 
            return te('m.cashBuy')
        case 2: 
            return te('m.rzBuy')
        default:
            return te('m.cashBuy')
    }
}
// 盘口数量过滤器，中文单位：万，英文单位k
let changeNum = function(values, te) {
  let value = Math.abs(Number(values))
  if(localStorage.getItem("lang")== "en") {
    if(value >= (10 ** 4) && value < (10 ** 8)) {
      return `${Number(values / 1000).toFixed(2)}K`;
    } else if(value >= (10 ** 8)) {
      return `${Number(values / (10 ** 7)).toFixed(2)}B`;
    } else return values
  } else {
    if(value >= (10 ** 4) && value < (10 ** 8)) {
      return `${Number(values / (10 ** 4)).toFixed(2)}万`;
    } else if(value >= (10 ** 8)) {
      return `${Number(values / (10 ** 8)).toFixed(2)}亿`;
    } else return values
  }
}
// 千分号过滤方法
let formatNumberRgx = function(value) {
    let parts = value.toString().split(".");
    parts[0] = parts[0].replace(/\B(?=(\d{3})+(?!\d))/g, ",");
    return parts.join(".");
  }
// let dateServer = function (value, te) {
//     if (value == undefined) {
//         return '--'
//     }
//     if ((value.toLowerCase()) == "hkex") {
//         return te('m.hkMoney')
//     } else if ((value.toLowerCase()) == "us") {
//         return te('m.usMoney')
//     } else if ((value.toLowerCase()) == "szse") {
//         return te('m.shMoney')
//     } else if ((value.toLowerCase()) == "sse") {
//         return te('m.shMoney')
//     }
// }
let dateServer = function (value, te) {
    if (value == undefined) {
        return '--'
    }
    if ((value.toLowerCase()) == "hkex") {
        return "HKD"
    } else if ((value.toLowerCase()) == "us") {
        return "USD"
    } else if ((value.toLowerCase()) == "szse") {
        return "CNH"
    } else if ((value.toLowerCase()) == "sse") {
        return "CNH"
    }
}
let dateType = function (value, te) {
    if (value == undefined) {
        return '--'
    }
    if ((value) == "1") {
        return te('m.Buy')
    } else if ((value) == "2") {
        return te('m.Sell')
    } else if ((value) == "3") {
        return te('m.Close_out')
    } else if ((value) == "4") {
        return te('m.Short_sale')
    }
}
let numberType = function (value, te) {
    if (value == undefined) {
        return '--'
    }
    if ((value) == "1") {
        return '1/4'
    } else if ((value) == "2") {
        return '1/3'
    } else if ((value) == "3") {
        return '1/2'
    } else if ((value) == "4") {
        return te('m.Full_warehouse')
    }
}
let priceTypeList = function (value, te) {
    if (value == undefined) {
        return '--'
    }
    if ((value) == "1") {
        return te('m.Limit_order')
    } else if ((value) == "2") {
        return te('m.Market_order')
    } else if ((value) == "3") {
        return te('m.Condition_sheet')
    }
}
let TypeList = function (value, key, te) {
    var arr = new Array;
    if (value == undefined) {
        return '--'
    }
    // 判断按钮类型
    // if ((value) == "0") {
    //     arr = ['买入', '沽空']
    // } else if ((value) == "1") {
    //     arr = ['买入', '卖出']
    // } else if ((value) == "2") {
    //     arr = ['平仓', '沽空']
    // }

    if ((value) == "0") {
        arr = ['m.Buy', 'm.Short_sale']
    } else if ((value) == "1") {
        arr = ['m.Buy', 'm.Sell']
    } else if ((value) == "2") {
        arr = ['m.Close_out', 'm.Short_sale']
    }
    return te(arr[key])
}
let MethodType = function (value, te) {
    if (value == undefined) {
        return '--'
    }
    if ((value) == "1") {
        return te('m.Day_end_Closing')
    } else if ((value) == "2") {
        return te('m.Close_minutes')
    } else if ((value) == "3") {
        return te('m.six_minutes_close')
    }
}
let jiaoyiType = function (direction, trade_type, te) {
    if (direction == 1 && trade_type == 1) {
        return te('m.Buy')
    } else if (direction == 1 && trade_type == 2) {
        return te('m.Buy')
    } else if (direction == 2 && trade_type == 1) {
        return te('m.Sell')
    } else if (direction == 2 && trade_type == 2) {
        return te('m.Sell')
    }
}

let timestampToTime = function (timestamp) {
    if (timestamp == '' || timestamp==0) {
        return '--'
    }
    let timestamp1 = Number(timestamp) * 1000;
    const dateObj = new Date(+timestamp1); // ps, 必须是数字类型，不能是字符串, +运算符把字符串转化为数字，更兼容
    const year = dateObj.getFullYear(); // 获取年，
    const month = dateObj.getMonth() + 1; // 获取月，必须要加1，因为月份是从0开始计算的
    const date = dateObj.getDate(); // 获取日，记得区分getDay()方法是获取星期几的。
    const hours =
        dateObj.getHours() >= 10 ?
        dateObj.getHours() :
        "0" + dateObj.getHours();
    const minutes =
        dateObj.getMinutes() >= 10 ?
        dateObj.getMinutes() :
        "0" + dateObj.getMinutes(); // 获取分
    const seconds =
        dateObj.getSeconds() >= 10 ?
        dateObj.getSeconds() :
        "0" + dateObj.getSeconds(); // 获取秒
    return year + '-' + month + '-' + date + '\n' + hours + ':' + minutes + ':' + seconds
    //   return year + "-" + month + "-" + date;
}
let status = function (value, te) {
    if (value == 0) {
        return te('m.Commissioning') //委托中
    } else if (value == 1) {
        return te('m.CommissioningSess') //委托成功
    } else if (value == 2) {
        return te('m.CommissioningFail') //委托失败
    } else if (value == 3) {
        return te('m.Cancelling') //撤单中
    } else if (value == 4) {
        return te('m.CancellingSuss') //撤单成功
    } else if (value == 5) {
        return te('m.CancellingFail') //半成半撤
    } else if (value == 6) {
        return te('m.Buy_suss') //交易完成
    } else if (value == 7) {
        return te('m.Buy_Fail') //交易失败
    } else if (value == 8) {
        return te('m.sell_suss') //订单过期
    } else if (value == 9) {
        return te('m.SystemMatching') //系统撮合
    }
}
let orderStatus = function (value, te) {
    // 1: 系统撤单, 其他：手动撤单
    if(value == 1) {
        return te('js.filters.56iizkx781c0')
    }else return te('js.filters.56iizkx7aok0')
}

let deawFif = function (val, te) {
    switch (val) {
        case 0:
            return te("m.under_review")
        case 1:
            return te("m.Out_money")
        case 2:
            return te("m.completed")
        case 3:
            return te("m.Payment_failed")
    }
}
let positFif = function (val, te) {
    switch (val) {
        case 0:
            return te("m.Processing")
        case 1:
            return te("m.Dismissed")
        case 2:
            return te("m.completed")
    }
}
let moneyList = function (vals, te) {
    let val = Math.abs(Number(vals));
    if (localStorage.getItem("lang") == 'zh-CN') {
        if (val >= 100000000) {
            return (vals / 100000000).toFixed(2) + te("m.Billion")
        } else if (val < 100000000 && val >= 1000000) {
            return (vals / 1000000).toFixed(2) + te("m.Ten_thousand")
        } else if (val < 1000000 && val >= 10000) {
            return (vals / 10000).toFixed(2) + te("m.Kill")
        } else {
            return (vals).toFixed(2)
        }
    } else {
        if (val >= 1000000000) {
            return (vals / 1000000000).toFixed(2) + te("m.Billion")
        } else if (val < 1000000000 && val >= 1000000) {
            return (vals / 1000000).toFixed(2) + te("m.Ten_thousand")
        } else if (val < 1000000 && val >= 10000) {
            return (vals / 1000).toFixed(2) + te("m.Kill")
        } else {
            return (vals).toFixed(2)
        }
    }

}
/**
 * 
 * param {string} VassetType 
 * param {string} VisSell
 * param {string} Vtradetype
 * param {string} Vdirection
 * 
 * 
 * **/
// isSell: 0：不支持做空，1：支持做空
// assetType： 1： 现金账户，2：融资账户
// tradeType 交易方向: 0：无持仓，1:做多 2：做空
// direction 交易方向: 0：无持仓，1:买入 2：卖出
let newwsJYtype = function (VassetType, VisSell, Vtradetype, Vdirection, te) {
    var arr = new Array()
    // 现金账户，股票不支持做空
    if (VassetType == 1 || VisSell == 0) {
        return arr = [{
            title: te("m.Buy"),
            direction: 1,
            tradeType: 1
        }, {
            title: te("m.Sell"),
            direction: 2,
            tradeType: 1
        }] //买入 卖出
    } else { // 融资账户，股票支持做空
        // 无持仓，买入,或卖出
        if (Vtradetype == 0 || Vdirection == 0) {
            return arr = [{
                title: te("m.Buy"),
                direction: 1,
                tradeType: 1
            }, {
                title: te("m.Sell"), // 做空状态，显示卖出
                direction: 2,
                tradeType: 2
            }] //有持仓 买入/卖出 做多
        } else if (Vtradetype == 1) {
            return arr = [{
                title: te("m.Buy"),
                direction: 1,
                tradeType: 1
            }, {
                title: te("m.Sell"),
                direction: 2,
                tradeType: 1
            }] //买入 卖出
        } else { // 做空
            return arr = [{
                title: te("m.Buy"), // 平仓状态，显示买入
                direction: 1,
                tradeType: 2
            }, {
                title: te("m.Sell"), // 沽空状态，显示卖出
                direction: 2,
                tradeType: 2
            }] //平仓 沽空
        }
    }
}
var toFixed = function (value, number) {
    value = Number(value);
    number = (number ? number : 3)
    return value.toFixed(Number(number))
}

let Frequency = function (value, te) {
    if (value == undefined) {
        return '--'
    }
    if ((value) == "1") {
        // return te('m.Limit_order') 每日
        return te("m.everyday")
    } else if ((value) == "2") {
        // return te('m.Market_order')
        return te("m.weekly") // 每周
    } else if ((value) == "3") {
        // return te('m.Condition_sheet')
        return te("m.everyMonth") //每月
    } else if ((value) == "4") {
        return te("m.everyYear") // 每年
    }
}
 /**
* val  {string|number} 当前值 eg:1
* list {object}   筛选的list  eg:[{id:1,val:"测试1"},{id:2,val:"测试2"}]
* key  判断的key   eg:id
* reutrnKey 返回的key eg:val
* return {string} 返回值   eg:测试1
* **/
let release =function(val, list, key, reutrnKey) {
 //var back= list.find(item=> item.id == 1)
 // back.val;
 if(list==undefined || list.length==0){
    return '--';
 }
 var filter = list.find(item => item[key] == val);
 if (filter) {
   return filter[reutrnKey];
 } else {
   return "--";
 }
}
let indexOff =  function(val,list){
    if(list.length==0){
        return ''
    }
    if(list.includes(val)){
        return 'on'
    }
}
// 加速审核状态
let AuditStatus =  function(val,te){
    if(val == 1){
        // 加速成功
        return te("m.AccelerateSuccess")
    } else if(val == 2) {
        // 加速失败
        return te("m.AccelerateFailure")
    } else if(val == 3) {
        // 冻结中
        return te("m.Freezing")
    } else if(val == 4) {
        // 审核中
        return te("m.under_review")
    } else {
        // 审核失败
        return te("m.AuditFailure")
    }
}
//有效期
let expireTypeList = function(val, te){
    // 1: 当日有效, 2: 撤销前有效, 3: 指定日期
    if(val == 1){
        return te('js.filters.56iizkx7be80')
    }else if(val == 2){
        return te('js.filters.56iizkx7btg0')
    }else{
        return te('js.filters.56iizkx7c740')
    }
}
//委托状态
let DelegationStatus = function(value,te){
    if (value == 0) {
        return te('m.Commissioning') //委托中
    } else if (value == 1) {
        return te('m.CommissioningSess') //委托成功
    } else if (value == 2) {
        return te('m.CommissioningFail') //委托失败
    } else if (value == 3) {
        return te('m.Cancelling') //撤单中
    } else if (value == 4) {
        return te('m.CancellingSuss') //撤单成功
    }else if (value == 5) {
        return te('js.filters.56iizkx7ckw0') // 部分成交
    }else if (value == 6){
        return te('m.Buy_suss') //交易完成
    }else if (value == 7){
        return te('m.Buy_Fail') //交易失败
    }else if (value == 8) {
        return te('m.sell_suss') //订单过期
    } else if (value == 9) {
        return te('m.SystemMatching') //系统撮合
    } else if (value == 10) {
        return te('js.filters.56iizkx7d2o0') // 部成部撤
    }
}
export {
    dateServer,
    dateType,
    numberType,
    priceTypeList,
    TypeList,
    MethodType,
    timestampToTime,
    expireTypeList,
    status,
    DelegationStatus,
    jiaoyiType,
    deawFif,
    positFif,
    moneyList,
    newwsJYtype,
    toFixed,
    Frequency,
    release,
    indexOff,
    AuditStatus,
    // 新增
    exchangeType,
    sexType,
    AssetType,
    buyType,
    exchangeStatus,
    PanStatus,
    changeNum,
    Market,
    orderStatus,
    formatNumberRgx,
    QuotationStatus
}